package temp

import (
	"yundian/internel/pkg/dingo"
)

// Tmpl Device Model
type TempDeviceModel struct {
	ID             int    `gorm:"column:id" json:"id"`                       //
	DeviceSn       string `gorm:"column:device_sn" json:"deviceSn"`          // 设备标识SN
	PreSn          string `gorm:"column:pre_sn" json:"preSn"`                // 设备标识SN
	DeviceTypeId   int    `gorm:"column:device_type_id" json:"deviceTypeId"` // 设备类型ID
	DeviceTypeName string `gorm:"column:device_type_name" json:"deviceTypeName"`

	PwdIndex      uint8  `gorm:"column:pwd_index" json:"pwdIndex"`            // 密码序号
	PwdSecretKey  string `gorm:"column:pwd_secret_key" json:"pwdSecretKey"`   // 密码解码key
	PwdDecodeType string `gorm:"column:pwd_decode_type" json:"pwdDecodeType"` // 密码解锁类型

	State uint8 `gorm:"column:state" json:"state"` // 状态 1:未启用 2:已部署 3:工作中 4:已报修

	SharedMode string `gorm:"column:shared_mode" json:"sharedMode"` // 共享模式  pcl密码线 cdb充电宝 zdsm 自动售货机
	FeeMode    uint8  `gorm:"column:fee_mode" json:"feeMode"`       // 费用模式 1:预付费 2:普通
	UseCount   int    `gorm:"column:use_count" json:"useCount"`

	PlaceId       int    `gorm:"column:place_id" json:"placeId"`              // 网点ID
	PlaceName     string `gorm:"column:place_name" json:"placeName"`          // 网点名称
	AgentUserId   int    `gorm:"column:agent_user_id" json:"agentUserId"`     // 代理商用户ID
	AgentUserName string `gorm:"column:agent_user_name" json:"agentUserName"` // 代理商名称
	DomainUrl     string `gorm:"column:domain_url" json:"domainUrl"`          // 二维码规则

	DeployAt dingo.Time `gorm:"column:deploy_at" json:"deployAt"` // 部署日期
	CreateAt dingo.Time `gorm:"column:create_at" json:"createAt"` // 创建日期
	UpdateAt dingo.Time `gorm:"column:update_at" json:"updateAt"` // 修改日期
	Sn       int        `gorm:"column:sn" json:"sn"`              // 添加设备批次序列号
	Url      int        `gorm:"column:url" json:"url"`            // 0(device.yundian.ink) 新创建的 1 天海(dev.yundian.ink) 2 天海(dev.thlmsz.vip)
	//is_tianhai
	Room string `gorm:"column:room" json:"room"`
}


type TempOrderModel struct {
	Id     int    `gorm:"column:id" json:"id"`       //
	Appid  string `gorm:"column:appid" json:"appid"` // Appid
	Mchid  string `gorm:"column:mchid" json:"-"`     // 商户ID
	Openid string `gorm:"column:openid" json:"-"`    // openid

	TradeNo    string `gorm:"column:trade_no" json:"tradeNo"`        // 商户订单号
	OutTradeNo string `gorm:"column:out_trade_no" json:"outTradeNo"` // 第三方订单号
	TradeType  string `gorm:"column:trade_type" json:"tradeType"`    // 第三方订单类型 PreAuthPay:预授权 Normal:普通支付(押金支付)
	// 第三方交易状态 微信免押：CREATED 商户已创建服务订单  DOING 服务订单进行中 DONE 服务订单完成 REVOKED 商户取消服务订单 EXPIRED 服务订单已失效
	// 第三方交易状态 微信押金：SUCCESS 支付成功
	// 第三方交易状态 支付宝：
	TradeState      string `gorm:"column:trade_state" json:"tradeState"`
	TradeStateDoing string `gorm:"column:trade_state_doing" json:"tradeStateDoing"`
	// 第三方交易状态 微信免押-doing状态下：USER_CONFIRM：用户确认  MCH_COMPLETE：商户完结
	TradeStateDesc string `gorm:"column:trade_state_desc" json:"tradeStateDesc"` // 第三方交易状态描述
	State          int8   `gorm:"column:state" json:"state"`                     // 商户平台订单状态 1:等待下单2:使用中3:已撤销4:交易失败5:已完成6:支付超时7:待守约10:已删除

	Title string `gorm:"column:title" json:"title"` // 订单标题

	DeviceSn   string `gorm:"column:device_sn" json:"deviceSn"`     // 设备标识
	SharedMode string `gorm:"column:shared_mode" json:"sharedMode"` // 设备共享模型  pcl密码线充 cdb充电宝
	FeeMode    int8   `gorm:"column:fee_mode" json:"feeMode"`       // 设备费用模型  2:预付费  1:普通

	Money              int64  `gorm:"column:money" json:"-"`                      // 订单总金额 - 单位分
	MoneyStr           string `gorm:"column:money_str" json:"moneyStr"`           //
	PayMoney           int64  `gorm:"column:pay_money" json:"-"`                  // 支付金额 - 单位分
	PayMoneyStr        string `gorm:"column:pay_money_str" json:"payMoneyStr"`    //
	RefundMoney        int64  `gorm:"column:refund_money" json:"refundMoney"`     // 退款金额 - 单位分
	SettlementWay      int8   `gorm:"column:settlement_way" json:"settlementWay"` // 结算方式 1: 微信支付
	SettlementMoney    int64  `gorm:"column:settlement_money" json:"-"`           // 结算金额
	SettlementMoneyStr string `gorm:"column:settlement_money_str" json:"settlementMoneyStr"`
	SettlementState    int8   `gorm:"column:settlement_state" json:"settlementState"` // 结算状态 1:未结算 2:结算中 3:已结算

	CouponType     int8   `gorm:"column:coupon_type" json:"couponType"`
	CouponMoney    int64  `gorm:"column:coupon_money" json:"-"`
	CouponMoneyStr string `gorm:"column:coupon_money_str" json:"couponMoneyStr"`

	OrderFrom string `gorm:"column:order_from" json:"orderFrom"` // 订单来源 weixin zhifubao
	PayFrom   int8   `gorm:"column:pay_from" json:"payFrom"`     // 支付来源 1免押 2押金
	PayType   int8   `gorm:"column:pay_type" json:"payType"`     // 支付类型 3:微信支付

	PlaceId     int    `gorm:"column:place_id" json:"placeId"`       // 网点ID
	PlaceName   string `gorm:"column:place_name" json:"placeName"`   // 网点名
	MemberId    string `gorm:"column:member_id" json:"memberId"`     // 会员ID
	MemberName  string `gorm:"column:member_name" json:"memberName"` // 会员名
	MemberPhone string `gorm:"column:phone" json:"phone"`            // 会员手机号码
	UserId      int    `gorm:"column:user_id" json:"userId"`         // 代理商ID
	UserName    string `gorm:"column:user_name" json:"userName"`

	OvertimeState int8 `gorm:"column:overtime_state" json:"overtime_state"` // 充电宝超时状态 1:正常 2:超时
	IsDelete      int8 `gorm:"column:is_delete" json:"-"`                   // 是否删除 默认0 1:删除
	IsDraw        int8 `gorm:"column:is_draw" json:"isDraw"`                // 是否抽单 默认0 1:抽单

	PayAt    dingo.Time `gorm:"column:pay_at" json:"payAt"`
	CreateAt dingo.Time `gorm:"column:create_at" json:"createAt"`
	UpdateAt dingo.Time `gorm:"column:update_at" json:"updateAt"`
	RefundAt dingo.Time `gorm:"column:refund_at" json:"-"`
	EndAt    dingo.Time `gorm:"column:end_at" json:"endAt"`
	DeleteAt dingo.Time `gorm:"column:delete_at" json:"-"`
	DrawAt   dingo.Time `gorm:"column:draw_at" json:"-"`
	BeginAt  dingo.Time `gorm:"column:begin_at" json:"beginAt"`

	// 新增
	ParentId       int    `gorm:"parent_id" json:"parentId"`               // 父ID
	AgentUserId    int    `gorm:"column:agent_user_id" json:"agentUserId"` // 代理商用户ID
	ProductId      string `gorm:"product_id" json:"productId"`             // 产生订单时的产品价格(商户对应的价格)
	UserNo         string `gorm:"-" json:"userNo"`                         // 用户编号
	MaintainerName string `gorm:"-" json:"maintainerName"`                 // 维护者

	KAUserId int `gorm:"column:ka_user_id" json:"kaUserId"`

	IsTianHai int8 `gorm:"column:is_tianhai" json:"isTianHai"` // 是否是天海的订单，定时任务用

	Phone string `gorm:"column:phone" json:"phone"` // 会员手机号码
}


// Dividends Log 代理商、商户 - 红利表
type TempDividendsLog struct {
	Id      int    `gorm:"column:id" json:"id"`
	TradeNo string `gorm:"column:trade_no" json:"tradeNo"`
	// 价格相关
	Money              int64  `gorm:"column:money" json:"money"`
	MoneyStr           string `gorm:"column:money_str" json:"moneyStr"`
	PayMoney           int64  `gorm:"column:pay_money" json:"payMoney"`        // 支付金额 - 单位分
	PayMoneyStr        string `gorm:"column:pay_money_str" json:"payMoneyStr"` //
	SettlementMoney    int64  `gorm:"column:settlement_money" json:"settlementMoney"`
	SettlementMoneyStr string `gorm:"column:settlement_money_str" json:"settlementMoneyStr"`
	// 分润信息
	ProfitType       int8 `gorm:"column:profit_type" json:"profitType"`
	ProfitProportion int8 `gorm:"column:profit_proportion" json:"profitProportion"`
	// 设备信息
	DeviceSn       string `gorm:"column:device_sn" json:"deviceSn"`
	SharedMode     string `gorm:"column:shared_mode" json:"sharedMode"`
	FeeMode        int8   `gorm:"column:fee_mode" json:"feeMode"`
	DeviceTypeID   int    `gorm:"column:device_type_id" json:"deviceTypeId"`
	DeviceTypeName string `gorm:"column:device_type_name" json:"deviceTypeName"`
	// 用户信息
	UserId     int    `gorm:"column:user_id" json:"userId"`
	UserName   string `gorm:"column:user_name" json:"userName"`
	PlaceId    int    `gorm:"column:place_id" json:"placeId"`
	PlaceName  string `gorm:"column:place_name" json:"placeName"`
	MemberId   string `gorm:"column:member_id" json:"memberId"`
	MemberName string `gorm:"column:member_name" json:"memberName"`
	// 状态
	State int8 `gorm:"column:state" json:"state"`
	// 时间
	PayAt        dingo.Time `gorm:"column:pay_at" json:"payAt"`
	SettlementAt dingo.Time `gorm:"column:settlement_at" json:"settlementAt"`
	CreateAt     dingo.Time `gorm:"column:create_at" json:"createAt"`
	UpdateAt     dingo.Time `gorm:"column:update_at" json:"updateAt"`

	EndDate  string `gorm:"column:end_date" json:"endDate"`
	EndMonth string `gorm:"column:end_month" json:"endMonth"`
}

